手把手教你VSCode+SSH+C++编译运行调试远程开发配置

您所在的位置:网站首页 vscode ssh连接输入格式 手把手教你VSCode+SSH+C++编译运行调试远程开发配置

手把手教你VSCode+SSH+C++编译运行调试远程开发配置

2024-07-16 11:22| 来源: 网络整理| 查看: 265

前言

这几天看到miaotony学长写了一篇基于VSCode和ssh实现远程编程/炼丹的博客。

我稍微看了看,他那个稍微有点复杂,实现了从任意一个外网主机通过代理服务器实现对内网主机的访问,并可以在这台内网电脑上进行远程开发。本蒟蒻并没有一台内网服务器,所以我只实现了从一个带有vscode的主机远程连接到阿里云服务器上进行远程开发的效果。下面我来记录我的实现过程。

解决了SSH免密登录的问题。解决了vscode连接远程服务器的问题解决了远程服务器c++/c环境配置问题解决了远程编译运行调试c++/c源文件问题 服务器配置

我用的是阿里云,我们要使用ssh远程连接,所以要使用git,在配置阿里云服务器时,我们执行yum install -y git虽然也能安装git,但是默认安装的版本比较旧,比如1.8.3版本的,现在最新版本的都有2.25.1版本了。而vscode的远程链接需要2以上的版本。

如果阿里云服务器上已经安装了git,先检查一下git版本。

git --version

如果它返回的版本是2版本以下,比如1.8.3版本。需要执行来将旧版本的git卸载掉。

yum remove -y git

然后依次执行对应命令。

以CentOS7系统为例:

#安装Git #从github下载git源码 wget https://github.com/git/git/archive/v2.22.0.tar.gz # 依赖库安装 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc perl-ExtUtils-MakeMaker # 解压gz源码压缩包, 这里注意压缩包名字,不一定是v2.22.0.tar.gz,请自行通过 ls -al命令查看 tar -xzf v2.22.0.tar.gz # 进入解压目录 cd git-2.22.0 # 编译安装 make prefix=/usr/local/git all make prefix=/usr/local/git install # 添加到环境变量 echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc source /etc/bashrc # 查看版本号 git --version 配置c/c++编译运行调试环境

安装g++/gcc,执行以下命令:

yum install gcc gcc-c++

安装gdb,执行以下命令:

yum install gdb

这时环境就搭建好了。

在vscode上按F5添加launch.json文件

将文件内容覆盖为

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", //配置名称,会在启动配置的下拉菜单中显示 "type": "cppdbg", //配置类型,只能为cppdbg "request": "launch", //请求类型,可以为launch或attach "program": "${fileDirname}/${fileBasenameNoExtension}.out", //将要调试的程序的路径 "args": [], //调试时传递给程序的命令行参数 "stopAtEntry": false, //设为true程序会暂停在入口处 "cwd": "${workspaceFolder}", //调试程序时的工作目录 "environment": [], //环境变量 "externalConsole": false, //调试时是否显示控制台窗口 "MIMode": "gdb", //指定连接的调试器,可以为gdb或lldb "miDebuggerPath": "/usr/bin/gdb", //gdb路径 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" //调试开始前执行的任务,一般为编译程序 } ] }

其中几个需要注意的点:

name参数是为了给配置做名称上的区分;program需要跟task.json中生成的out路径对应,这里为了让后面的项目都可以使用这个配置,因此将每个项目的.out文件生成在对应项目下;miniDebuggerPath代表的gdb路径需要根据linux命令where is gcc确定;preLaunchTask的任务名称需要跟task.json中的label名称对应,在调试前需要先编译。

然后按下ctrl+shift+p,选择Tasks:Configure Task即配置任务,然后选择使用模板生成task.json,然后任务模板选择Others,此时自动生成task.json。将task.json中的内容替换为:

{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build", //在launch.json文件中有用到 "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.out" ], "group": { "kind": "build", "isDefault": true } } ] }

args这样写的目的是为了后面使用统一配置,并方便.out调试文件输出到指定的目录下。

这时服务器端就配置好了。

本地电脑配置 Git配置

首先还是先检查版本。如果是2版本以下就更新git,在windows系统下执行:

git update-git-for-windows 配置vscode 安装插件

在插件市场中搜索remote development并安装。

然后通过ctrl+shift+p打开设置Remote-SSH-Settings,设置Remote.SSH:Show Login Terminal为true

接着直接点击左下角的ssh绿色图标:

在上方输入框内输入yourname@ip远程主机用户名与ip地址,按回车进行连接。

设置常用主机

当然你也可以设置常用主机,通过ctrl+shift+p搜索并点击Remote-SSH: Open Configuration File,选择 一个配置文件,就打开了配置文件。

Host #这里随意输入你喜欢的名字 HostName #输入你的IP地址 User #输入你登录的远程服务器用户名 远程终端

点击新建终端即可打开Bash

首次登录后,VS Code会自动弹出一个新的窗口用于远程工作,并且会自动在远程主机上安装VS Code server。

在登录过程中需要不断的输入密码,只要弹出就输入密码即可。

但我们可以设置ssh免密登录。

ssh免密登录远程服务器

首先先确认~目录下有没有.ssh文件夹,用ls -al命令确认。

如果没有.ssh文件夹的话:

登录服务器root用户,然后在~目录下创建.ssh文件夹

# mkdir .ssh # cd .ssh

在服务器端.ssh文件下创建authorized_keys,执行

# vi authorized_keys 如果有.ssh文件夹:

在这里,其实ssh公钥没有必要重复生成。如果你计算机里已经有了公钥文件可以直接复制。在电脑里找到id_rsa.pub(可以直接全局搜索)用记事本打开,把内容复制下来。

如果没有公钥文件,我们就必须生成公钥文件。

接下来在本地生成公钥文件,在桌面空白处右击选择git bash(这里默认个人电脑已经安装git),执行以下命令。(这个命令在自己电脑上执行)

# ssh-keygen

生成公钥密钥文件,这一步很重要。

然后直接一路回车。不需要设置密码。

此时在目录下就会有两个文件,分别是id_rsa 和 id_rsa.pub

其中 id_rsa.pub 就是公钥文件 我们复制一份

接着我们把公钥内容粘贴到服务器的文件(root/.ssh/authorized_keys)中 此时可以用VSCode直接进入服务器,打开authorized_keys,复制进去就行了。

最后我们修改它的权限

# chmod 600 ~/.ssh/authorized_keys # chmod 700 ~/.ssh

然后我们在自己的电脑上,打开cmd,使用ssh方式连接我们的云服务器并输入密码。

$ ssh -v git@(这里填服务器公网IP地址)

最后提示

Welcome to Alibaba Cloud Elastic Compute Service !

说明免密登录成功了。到这里所有的配置就完成了。

远程服务器安装环境扩展

这个时候虽然可以写代码,但服务器还识别不了语言,在远程开发的时候扩展分为本地扩展和远程扩展,因为连接远程服务器vscode会自动新打开一个窗口,在这个新窗口里点击应用市场,搜索c/c++插件和code runner插件,安装到服务器上即可。

享受远程开发吧

在左侧活动栏打开资源管理器,点击打开文件夹,选择一个远程服务器开发文件夹打开就可以实现远程开发了。您甚至可以不要带电脑,在任何一个可以联网的主机上实现c/c++远程开发。

Reference

【宇宙最强编辑器VS Code】(十)使用VS Code + SSH进行远程开发

CentOS 7安装gcc,并编辑运行第一个c/c++程序(含vi编辑器的简单使用)

CentOS 7 安装gcc、g++、gdb教程

在Linux系统下使用VS Code编写调试C++代码的配置流程



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3